import {message} from 'antd';
import {reqSecondRequire, reqAddSecondRequire, reqDeleteSecondRequire, reqUpdataSecondRequire} from './server';


export const models = {
  name: 'secondRequire',
  model: {
    state: {
      loading: true,
      secondRequireList: [],
      firstRequirementId: '',
      firstRequirementNo: '',
      firstdetail: ''
      
    },
    reducers: {
      setSecondRequireList(state, payload) {
        return {...state, secondRequireList: payload.secondRequirementVOS,firstdetail: payload.detail, 
          firstRequirementNo: payload.firstRequirementNo, firstRequirementId: payload.firstRequirementId}
      },
      setLoading(state, payload) {
        return {...state, loading: payload}
      }
    },
    effects: dispatch => {
      return {
        async getSecondRequire(params) {
          dispatch.secondRequire.setLoading(true);
          try {
            const { code, msg, data } = await reqSecondRequire(params);
            code === 0 && await dispatch.secondRequire.setSecondRequireList(data);
            code !== 0 && message.error(msg);
          } finally {
            dispatch.secondRequire.setLoading(false);
          }
        },
        async addSecondRequire(params) {
          const { code, msg } = await reqAddSecondRequire(params);
          code == 0 && await dispatch.secondRequire.getSecondRequire({firstRequirementId: params.firstRequirementId})
          code !== 0 ? message.error(msg) : message.success('插入成功');
        },
        async deleteSecondRequire(params, state) {
          const { code, msg} = await reqDeleteSecondRequire(params);
          code == 0 && await dispatch.secondRequire.getSecondRequire({firstRequirementId: state.secondRequire.firstRequirementId});
          code !== 0 ? message.error(msg) : message.success('删除成功');
        },
        async updateSecondRequire(params, state) {
          const {code, msg} = await reqUpdataSecondRequire(params);
          code == 0 && await dispatch.secondRequire.getSecondRequire({firstRequirementId: state.secondRequire.firstRequirementId});
          code !== 0 ? message.error(msg) : message.success('更新成功');
        }
      }
    }
  }
}